"""
频率限制
"""
from rest_framework.throttling import SimpleRateThrottle


# 对发送短信做频率限制，限制的对象是手机号
class SMSThrottling(SimpleRateThrottle):
    scope = 'sms'

    def get_cache_key(self, request, view):
        telephone = request.query_params.get('telephone')
        # return telephone  # 不建议直接将数据库中存在的字段名作为变量名返回，容易出现值被覆盖的情况
        """
        所以要拼接出一个唯一的值，SimpleRateThrottle源码中有下面这个字符串
        cache_format = 'throttle_%(scope)s_%(ident)s'
        拼接方式是 字符串 % {'scope': 值, 'ident': 值}
        可以用这个预留好的字符串拼接出唯一的值并返回
        """
        return self.cache_format % {'scope': self.scope, 'ident': telephone}
